package controllerActions;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import beans.Auftrag;
import beans.MeinPortfolio;
import connection.DBConnection;
import dao.AuftragDAO;
import dao.MeinPortfolioDAO;

public class AktieVerkaufen {
	public void aktieVerkaufen(HttpSession session, HttpServletRequest request, DBConnection dbc, MeinPortfolioDAO meinPortfolioDAO, AuftragDAO auftragDAO){
		MeinPortfolio meinPortfolio = new MeinPortfolio();
		@SuppressWarnings({ "unchecked", "rawtypes" })
		ArrayList<MeinPortfolio> mpfList = (ArrayList)session.getValue("meinPortfolioList");
		int portfolioIndex = (int) session.getValue("portfolioIndex");
		
		int id = mpfList.get(portfolioIndex).getPortfolio_ID();
		int alteAnzahl = mpfList.get(portfolioIndex).getAnzahl();
		int anzahlAktien = Integer.valueOf(request.getParameter("stueckzahl"));
		int neueAnzahl = alteAnzahl - anzahlAktien;
		try {
			meinPortfolioDAO.useConnection(dbc.getDBInfos());
			if(neueAnzahl <=0){
				meinPortfolioDAO.deletePortfolio(id);
			}else{
			meinPortfolioDAO.updatePortfolio(neueAnzahl, id);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			auftragDAO.useConnection(dbc.getDBInfos());
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		ResourceBundle properties = ResourceBundle.getBundle("controller.string");
		Auftrag auftrag = new Auftrag();
		auftrag.setAktie_FK(mpfList.get(portfolioIndex).getAktie_FK());
		auftrag.setAnzahl(anzahlAktien);
		auftrag.setPreis(Integer.valueOf(request.getParameter("stueckpreis")));
		auftrag.setBenutzer_FK(Integer.valueOf(session.getValue("UserID").toString()));
		try {
			auftragDAO.insertAuftrag(auftrag);
			session.putValue("meldung5", properties.getString("meldung5") + auftrag.getAuftrag_ID());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
